將 x11vnc 與 noVNC 整合在一起
下面是一個簡單的 Docker Compose 範例,將 x11vnc 與 noVNC 整合在一起,讓你可以透過瀏覽器直接存取 VNC 桌面環境。這個範例假設你要跑一個基本的 X11 桌面環境並透過 noVNC 提供 Web 介面:
version: "3.8"
services:
x11vnc:
image: dorowu/ubuntu-desktop-lxde-vnc
container_name: x11vnc
ports:
- "5900:5900" # VNC port
- "6080:80" # noVNC web port
environment:
- VNC_PASSWORD=yourpassword # 設定 VNC 密碼
restart: unless-stopped
x11vnc + noVNC,所以只要一個 container 就能提供完整功能。5900 是傳統 VNC port,如果你要用 VNC client 連線。6080 對應到 noVNC 的 Web UI,打開瀏覽器輸入 http://localhost:6080 就能直接操作桌面。VNC_PASSWORD 用來設定登入密碼。如果你想要更「模組化」的方式,把 x11vnc 和 noVNC 分成兩個服務,可以這樣寫:
version: "3.8"
services:
x11vnc:
image: x11vnc/x11vnc
container_name: x11vnc
environment:
- DISPLAY=:0
ports:
- "5900:5900"
restart: unless-stopped
novnc:
image: novnc/novnc
container_name: novnc
environment:
- VNC_SERVER=x11vnc:5900
ports:
- "6080:6080"
depends_on:
- x11vnc
restart: unless-stopped
這裡幫你整理了一個 「一站式 vs 分離式」Docker Compose 架構比較表,方便你依需求選擇:
| 架構方式 | 特點 | 優點 | 缺點 | 適合情境 |
|---|---|---|---|---|
| 一站式 (單容器) | 使用整合映像(如 dorowu/ubuntu-desktop-lxde-vnc),同時提供 x11vnc + noVNC |
- 部署快速,設定簡單 - 一個容器即可完成 - 適合測試或快速上手 |
- 彈性較低 - 不易替換或升級單一組件 - 映像體積較大 |
- 個人測試環境 - Demo 或教學用 - 想快速有結果 |
| 分離式 (多容器) | 將 x11vnc 與 noVNC 分開成兩個服務,透過 Compose 串接 | - 模組化設計 - 可獨立升級或替換組件 - 更容易調整配置(如不同 VNC server 或 Web 前端) |
- 部署稍微複雜 - 需要額外設定環境變數與網路 - 初學者可能較難上手 |
- 團隊環境 - 需要長期維護 - 想要高度自訂或擴展 |
💡 建議選擇方式:
| File9 | File | Last Modified |
|---|---|---|
| 連線到 Asustor Linux Center 建立的 Debian Desktop 12 | 連線到 Asustor Linux Center 建立的 Debian Desktop 12 | 2:24 PM - January 12, 2026 |
| 透過 systemd service管理 VNC server | 透過 systemd service管理 VNC server | 2:24 PM - January 12, 2026 |
| ZFS 檔案系統簡介 | ZFS 檔案系統簡介 | 2:24 PM - January 12, 2026 |
| VNCSever debug | VNCSever debug | 2:24 PM - January 12, 2026 |
| VNC viewer via SSH tunnel connection | VNC viewer via SSH tunnel connection | 2:24 PM - January 12, 2026 |
| Untitled | Untitled | 2:24 PM - January 12, 2026 |
| LXDE 一個輕量級的桌面環境 | LXDE 一個輕量級的桌面環境 | 2:24 PM - January 12, 2026 |
| Asustor NAS Linux Center | Asustor NAS Linux Center | 2:24 PM - January 12, 2026 |
| AS6508T 上使用 Ubuntu | AS6508T 上使用 Ubuntu | 2:24 PM - January 12, 2026 |